table.table {
    margin-bottom: 0;

    &.table-nowrap {
        tr {
            white-space: nowrap;

            td,
            th {

                text-overflow: ellipsis;
                overflow: hidden;
            }
        }
    }

    thead {
        &.fixed {
            position: sticky;
            top: 0;
            z-index: 2;
        }
    }

    tfoot {
        position: sticky;
        bottom: 0;
        z-index: 2;
    }

    &.caption-top {
        caption {
            position: sticky;
            top: 0;
        }
    }

    caption {
        position: sticky;
        bottom: 0;
        z-index: 2;
        background-color: white;

        .caption-content {
            display: inline-block;
            // width: 100%;
            position: sticky;
            left: 0;
            right: 0;
        }
    }

    td,
    th {
        &.fixed {
            &th {
                box-sizing: border-box;
            }

            &.fixed-right {
                right: 0;
            }

            &.fixed-left {
                left: 0;
            }

            position: sticky;
            z-index: 1;
        }
    }

    th {
        &.fixed.fixed-right {
            z-index: 2;
        }

        &.fixed.fixed-left {
            z-index: 2;
        }
    }
}

.table-border {
    padding: 0;
    margin-bottom: 1rem;
}